const { h } = window.Vue

const Title = {
  template: `
    <h1 :msg="msg">
      <slot name="abc"></slot>
    </h1>
  `,

  // props: ['msg'],

  setup(props, { slots, attrs, emit }) {
    // slots一般只在自定义渲染函数的时候使用
    // console.log(context.slots)
    
    // props.attrs在用户未定义props options时才有值
    // 如果用户不定义props, render函数渲染的节点会自动添加props.attrs里的属性
    // 如果自己在h函数里定义属性和props里的属性重名，优先级低于props里的属性
    // console.log(context.attrs)

    // context.emit('my-event')
    emit('my-event')

    return () => {
      //this 在 setup() 中不可用。
      console.log(this)
      return h('h1', {msg: 'aaa'}, slots.abc())
    }
    // return {
    //   msg: props.msg + '!'
    // }
  }
}

export default Title